import express from 'express';
import * as dotenv from 'dotenv';
import OpenAI from 'openai';

dotenv.config();

const router = express.Router();

const openai = new OpenAI({
  apiKey: 'sk-KBwuR0mMTxUblJVajpQs3cSiu6EYHOGKeVFveSeMjZ3dBjfZ',
  baseURL: 'https://api.302.ai/v1' // 确保使用正确的 API 端点
});

router.route('/').get((req, res) => {
  res.status(200).json({ message: "Hello from DALL.E ROUTES" });
});

router.route('/').post(async (req, res) => {
  const { prompt } = req.body;
  try {
    // 调用OpenAI的images.generate方法生成图片
    const response = await openai.images.generate({
        model: "dall-e-3", // 使用的模型
        prompt: prompt, // 文本描述
        n: 1, // 生成的图片数量
        size: "1024x1024", // 图片大小
        // 指定响应格式为base64编码的JSON
        response_format: "base64_json",
        // 指定图片以png格式返回
    });

    // 打印生成的图片URL
    // const url = response.data.images[0].url;
    console.log(response.data[0].url)
    const url = response.data[0].url;
    // 解析图片url，并将图片转化为base64编码发送给前端
    const base64Image = await fetch(url)
        .then((res) => res.arrayBuffer())
        .then((buffer) => Buffer.from(buffer).toString('base64'));
    res.status(200).json({ photo:base64Image });
    


} catch (error) {
    // 捕获并处理可能出现的错误
    console.error('Error generating image:', error);
}

});

export default router;